library("reactable")
library("htmltools")
method_labels = c(
"MNN" = "mnn",
"Scanorama" = "scanorama",
"Seurat v3" = "seurat",
"Harmony" = "harmony",
"BBKNN" = "bbknn",
"SAUCIE" = "saucie",
"trVAE" = "trvae",
"trVAEp" = "trvaep",
"scVI" = "scvi",
"CONOS" = "conos",
"ComBat" = "combat",
"LIGER" = "liger",
"scGen" = "scgen",
"scANVI" = "scanvi",
"FastMNN" = "fastmnn",
"DESC" = "desc",
"Unintegrated" = "unintegrated"
)
metrics <- read_csv(
here("data", "metrics.csv"),
col_names = c(
"path",
"NMI_cluster_label",
"ARI_cluster_label",
"ASW_label",
"ASW_label_batch",
"PCR_batch",
"cell_cycle",
"isolated_label_F1",
"isolated_label_silhouette",
"graph_connectivity",
"kBET",
"iLISI",
"cLISI",
"HVG_overlap",
"trajectory"
),
col_types = cols(
path = col_character(),
NMI_cluster_label = col_double(),
ARI_cluster_label = col_double(),
ASW_label = col_double(),
ASW_label_batch = col_double(),
PCR_batch = col_double(),
cell_cycle = col_logical(),
isolated_label_F1 = col_double(),
isolated_label_silhouette = col_double(),
graph_connectivity = col_double(),
kBET = col_double(),
iLISI = col_double(),
cLISI = col_double(),
HVG_overlap = col_double(),
trajectory = col_logical()
),
skip = 1
) %>%
separate(
path,
into = c(NA, "dataset", NA, "scaling", "features", "method"),
sep = "/"
) %>%
separate(method, into = c("method", "output"), sep = "_") %>%
mutate(
dataset = factor(dataset),
scaling = factor(
scaling,
levels = c("scaled", "unscaled"),
labels = c("Scaled", "Unscaled")
),
features = factor(
features,
levels = c("full_feature", "hvg"),
labels = c("Full", "HVG")
),
method = factor(
method,
levels = method_labels,
labels = names(method_labels)
),
output = factor(
output,
levels = c("full", "embed", "knn"),
labels = c("Features", "Embedding", "Graph")
)
) %>%
mutate(
input = paste(dataset, scaling, features, sep = "-"),
full_method = paste(method, output, sep = "-"),
scenario = paste(input, full_method, sep = "|")
) %>%
group_by(dataset) %>%
mutate(across(where(is.numeric), scales::rescale, to = c(0, 1))) %>%
ungroup() %>%
rowwise() %>%
mutate(
batch_correction = mean(
c(PCR_batch, ASW_label_batch, iLISI, graph_connectivity, kBET),
na.rm = TRUE
),
bio_conservation = mean(
c(
NMI_cluster_label, ARI_cluster_label, ASW_label,
isolated_label_F1, isolated_label_silhouette, cLISI,
HVG_overlap, cell_cycle, trajectory
),
na.rm = TRUE
)
) %>%
ungroup() %>%
mutate(overall = 0.4 * batch_correction + 0.6 * bio_conservation) %>%
relocate(
scenario, input, dataset, scaling, features, full_method, method,
output, overall, batch_correction, PCR_batch, ASW_label_batch, iLISI,
graph_connectivity, kBET, bio_conservation, NMI_cluster_label,
ARI_cluster_label, ASW_label, isolated_label_F1,
isolated_label_silhouette, cLISI, HVG_overlap, cell_cycle, trajectory
)
metrics <- filter(metrics, dataset == params$dataset)
batch_metrics <- c(
"Batch correction" = "batch_correction",
"PCR batch" = "PCR_batch",
"Batch ASW" = "ASW_label_batch",
"Graph iLISI" = "iLISI",
"Graph connectivity" = "graph_connectivity",
"kBET" = "kBET"
)
bio_metrics <- c(
"Bio conservation" = "bio_conservation",
"NMI cluster/label" = "NMI_cluster_label",
"ARI cluster/label" = "ARI_cluster_label",
"Label ASW" = "ASW_label",
"Isolated label F1" = "isolated_label_F1",
"Isolated label silhouette" = "isolated_label_silhouette",
"Graph cLISI" = "cLISI",
"HVG conservation" = "HVG_overlap",
"Cell cycle conservation" = "cell_cycle",
"Trajectory conservation" = "trajectory"
)
Overall
Plot
plot_data <- metrics %>%
filter(method != "Unintegrated") %>%
mutate(output_features = paste(output, features, sep = "-"))
medians <- metrics %>%
summarise(
batch_correction = median(batch_correction),
bio_conservation = median(bio_conservation)
) %>%
mutate(type = "Median")
ref_lines <- metrics %>%
dplyr::filter(method == "Unintegrated") %>%
dplyr::mutate(type = "Unintegrated") %>%
dplyr::select(type, batch_correction, bio_conservation) %>%
dplyr::bind_rows(medians)
ggplot(
plot_data,
aes(
x = batch_correction,
y = bio_conservation,
colour = method,
size = overall,
shape = output_features,
)
) +
geom_hline(
data = dplyr::filter(ref_lines, type == "Unintegrated"),
aes(yintercept = bio_conservation, linetype = type),
colour = "red"
) +
geom_vline(
data = dplyr::filter(ref_lines, type == "Unintegrated"),
aes(xintercept = batch_correction, linetype = type),
colour = "red"
) +
geom_hline(
data = dplyr::filter(ref_lines, type == "Median"),
aes(yintercept = bio_conservation, linetype = type),
colour = "blue"
) +
geom_vline(
data = dplyr::filter(ref_lines, type == "Median"),
aes(xintercept = batch_correction, linetype = type),
colour = "blue"
) +
geom_point(stroke = 1, fill = "white") +
geom_point(
data = filter(plot_data, features == "Full"),
aes(alpha = scaling),
shape = 4, size = 1.5, colour = "white"
) +
geom_point(
data = filter(plot_data, features == "HVG"),
aes(alpha = scaling),
shape = 4, size = 1.5
) +
scale_x_continuous(limits = c(0, 1)) +
scale_y_continuous(limits = c(0, 1)) +
scale_colour_brewer(palette = "Paired") +
scale_size_continuous(range = c(0.5, 5), limits = c(0, 1),
breaks = seq(0, 1, 0.2)) +
scale_shape_manual(
values = c(16, 21, 15, 22, 17, 24),
labels = c("Embedding (Full)", "Embedding (HVG)", "Features (Full)",
"Features (HVG)", "Graph (Full)", "Graph (HVG)")
) +
scale_alpha_manual(values = c(1, 0)) +
scale_linetype_manual(values = c(1, 5)) +
coord_fixed() +
labs(
x = "Batch correction",
y = "Bio conservation"
) +
guides(
colour = guide_legend(
title = "Method",
title.position = "top",
ncol = 2,
order = 10
),
shape = guide_legend(
title = "Output (features)",
title.position = "top",
ncol = 2,
byrow = TRUE,
order = 20
),
alpha = guide_legend(
title = "Scaling",
title.position = "top",
ncol = 2,
order = 30
),
size = guide_legend(
title = "Overall score",
title.position = "top",
direction = "horizontal",
nrow = 1,
label.position = "bottom",
order = 40
),
linetype = guide_legend(
title = "",
title.position = "top",
ncol = 1,
override.aes = list(colour = c("blue", "red")),
order = 90
)
) +
theme(
legend.position = "right",
axis.text = element_text(size = 7),
panel.border = element_rect(fill = NA)
)

Table
make_colour_pal <- function(colours, bias = 1) {
get_color <- colorRamp(colours, bias = bias)
function(x) {
ifelse(
is.na(x),
"white",
rgb(get_color(x), maxColorValue = 255)
)
}
}
make_cell_func <- function(colours) {
colour_pal <- make_colour_pal(colours)
function(value) {
color <- colour_pal(value)
value <- format(round(value, 2), nsmall = 2)
div(
class = "score",
style = list(background = color),
value
)
}
}
overall_cell <- make_cell_func(
c("#ffffd9", "#edf8b1", "#c7e9b4", "#7fcdbb", "#41b6c4", "#1d91c0",
"#225ea8")
)
batch_cell <- make_cell_func(
c("#fff7f3", "#fde0dd", "#fcc5c0", "#fa9fb5", "#f768a1", "#dd3497",
"#ae017e")
)
bio_cell <- make_cell_func(
c("#fff7ec", "#fee8c8", "#fdd49e", "#fdbb84", "#fc8d59", "#ef6548",
"#d7301f")
)
score_column <- function(maxWidth = 80, class = "cell number", ...) {
colDef(maxWidth = maxWidth, align = "center", class = class, ...)
}
tbl <- metrics %>%
select(-scenario, -dataset, -input, -full_method) %>%
relocate(method, output, features, scaling) %>%
reactable(
pagination = FALSE,
defaultSorted = "overall",
defaultSortOrder = "desc",
defaultColDef = colDef(class = "cell", headerClass = "header"),
defaultColGroup = colGroup(headerClass = "group-header"),
columnGroups = list(
colGroup(
name = "Batch correction",
columns = unname(batch_metrics)
),
colGroup(
name = "Bio conservation",
columns = unname(bio_metrics)
)
),
columns = list(
method = colDef(
name = "Method",
headerStyle = list(fontWeight = 700),
filterable = TRUE
),
output = colDef(
name = "Output",
headerStyle = list(fontWeight = 700),
filterable = TRUE
),
scaling = colDef(
name = "Scaling",
headerStyle = list(fontWeight = 700),
filterable = TRUE
),
features = colDef(
name = "Features",
headerStyle = list(fontWeight = 700),
filterable = TRUE
),
overall = score_column(
name = "Overall score",
headerStyle = list(fontWeight = 700),
cell = overall_cell,
class = "cell number border-left"
),
batch_correction = score_column(
name = "Overall",
cell = batch_cell,
class = "cell number border-left"
),
PCR_batch = score_column(
name = "PCR batch",
cell = batch_cell
),
ASW_label_batch = score_column(
name = "Batch ASW",
cell = batch_cell
),
iLISI = score_column(
name = "Graph\niLISI",
cell = batch_cell,
),
graph_connectivity = score_column(
name = "Graph connectivity",
cell = batch_cell,
),
kBET = score_column(
name = "kBET",
cell = batch_cell
),
bio_conservation = score_column(
name = "Overall",
cell = bio_cell,
class = "cell number border-left",
),
NMI_cluster_label = score_column(
name = "NMI cluster/label",
cell = bio_cell,
),
ARI_cluster_label = score_column(
name = "ARI cluster/label",
cell = bio_cell
),
ASW_label = score_column(
name = "Label ASW",
cell = bio_cell
),
isolated_label_F1 = score_column(
name = "Isolated label F1",
cell = bio_cell
),
isolated_label_silhouette = score_column(
name = "Isolated label silhouette",
cell = bio_cell
),
cLISI = score_column(
name = "Graph cLISI",
cell = bio_cell
),
HVG_overlap = score_column(
name = "HVG conservation",
cell = bio_cell
),
cell_cycle = score_column(
name = "Cell cycle conservation",
cell = bio_cell
),
trajectory = score_column(
name = "Trajectory conservation",
cell = bio_cell
)
),
compact = TRUE,
highlight = TRUE,
showSortIcon = FALSE,
borderless = TRUE,
class = "metrics-table"
)
div(class = "metrics",
# div(class = "title",
# h2(paste("Metrics table for the", params$dataset, "dataset")),
# ),
tbl
)
Individual metrics
metric_barplot <- function(metrics, metric, label) {
metric_str <- rlang::as_label(rlang::enquo(metric))
metric_vec <- metrics[[metric_str]]
ref_lines <- tribble(
~Value, ~Type,
median(metric_vec, na.rm = TRUE), "Median",
metric_vec[metrics$method == "Unintegrated"], "Unintegrated"
)
plot <- ggplot(
metrics,
aes(
x = fct_reorder(full_method, {{ metric }},
.fun = max),
y = {{ metric }},
fill = method
)
) +
geom_hline(
data = ref_lines,
aes(yintercept = Value, colour = Type, linetype = Type)
) +
geom_col() +
geom_point(
aes(shape = output),
size = 4, colour = "white",
show.legend = c(fill = FALSE, shape = TRUE)
) +
geom_text(
data = filter(metrics, is.na({{ metric }})),
y = 0.5, label = "Not computed"
) +
coord_flip() +
scale_fill_brewer(palette = "Paired") +
scale_linetype_manual(values = c(1, 5)) +
scale_colour_manual(values = c("blue", "red"), guide = FALSE) +
scale_shape_manual(values = c(21, 22, 23)) +
facet_grid(features ~ scaling) +
labs(y = label) +
guides(
fill = guide_legend(
title = "Method",
title.position = "top",
ncol = 2,
order = 10
),
shape = guide_legend(
title = "Output",
title.position = "top",
ncol = 2,
byrow = TRUE,
override.aes = list(colour = "grey60", stroke = 1),
order = 20
),
linetype = guide_legend(
title = "",
title.position = "top",
ncol = 1,
override.aes = list(colour = c("blue", "red")),
order = 90
)
) +
theme(
legend.position = "right",
axis.text = element_text(size = 7),
axis.title.y = element_blank(),
panel.border = element_rect(fill = NA),
strip.background = element_rect(fill = "black"),
strip.text = element_text(size = 10, colour = "white")
)
if (any(!is.na(metric_vec))) {
plot <- plot + scale_y_continuous(limits = c(0, 1))
}
plot
}
Overall
metric_barplot(metrics, overall, "Overall score")

Batch correction
src_list <- lapply(names(batch_metrics), function(label) {
metric <- batch_metrics[label]
src <- c(
"### <<label>> {.unnumbered}",
"```{r metrics-batch-<<metric>>}",
"metric_barplot(metrics, <<metric>>, '<<label>>')",
"```",
""
)
knitr::knit_expand(text = src, delim = c("<<", ">>"))
})
out <- knitr::knit_child(text = unlist(src_list), options = list(cache = FALSE))
Batch correction
metric_barplot(metrics, batch_correction, 'Batch correction')

PCR batch
metric_barplot(metrics, PCR_batch, 'PCR batch')

Batch ASW
metric_barplot(metrics, ASW_label_batch, 'Batch ASW')

Graph iLISI
metric_barplot(metrics, iLISI, 'Graph iLISI')

Graph connectivity
metric_barplot(metrics, graph_connectivity, 'Graph connectivity')

kBET
metric_barplot(metrics, kBET, 'kBET')

Bio conservation
src_list <- lapply(names(bio_metrics), function(label) {
metric <- bio_metrics[label]
src <- c(
"### <<label>> {.unnumbered}",
"```{r metrics-bio-<<metric>>}",
"metric_barplot(metrics, <<metric>>, '<<label>>')",
"```",
""
)
knitr::knit_expand(text = src, delim = c("<<", ">>"))
})
out <- knitr::knit_child(text = unlist(src_list), options = list(cache = FALSE))
Bio conservation
metric_barplot(metrics, bio_conservation, 'Bio conservation')

NMI cluster/label
metric_barplot(metrics, NMI_cluster_label, 'NMI cluster/label')

ARI cluster/label
metric_barplot(metrics, ARI_cluster_label, 'ARI cluster/label')

Label ASW
metric_barplot(metrics, ASW_label, 'Label ASW')

Isolated label F1
metric_barplot(metrics, isolated_label_F1, 'Isolated label F1')

Isolated label silhouette
metric_barplot(metrics, isolated_label_silhouette, 'Isolated label silhouette')

Graph cLISI
metric_barplot(metrics, cLISI, 'Graph cLISI')

HVG conservation
metric_barplot(metrics, HVG_overlap, 'HVG conservation')

Cell cycle conservation
metric_barplot(metrics, cell_cycle, 'Cell cycle conservation')

Trajectory conservation
metric_barplot(metrics, trajectory, 'Trajectory conservation')

UMAPs
full_src <- list()
for (feature in levels(metrics$features)) {
full_src <- c(
full_src,
paste("##", feature, "{.unnumbered .tabset .tabset-pills .tabset-fade}"),
""
)
for (scale in levels(metrics$scaling)) {
full_src <- c(
full_src,
paste("###", scale, "{.unnumbered .tabset .tabset-pills}"), ""
)
metrics_sel <- filter(metrics, features == feature, scaling == scale)
src_list <- map2_chr(
metrics_sel$method, metrics_sel$output,
function(.method, .output) {
batch_path <- here(
"data", params$dataset,
tolower(scale),
if_else(feature == "Full", "full_feature", "hvg"),
paste(
method_labels[.method],
case_when(
.output == "Features" ~ "full",
.output == "Embedding" ~ "embed",
.output == "Graph" ~ "knn"
),
"batch.png", sep = "_"
)
)
labels_path <- str_replace(batch_path, "batch", "labels")
src <- c(
"#### <<.method>> - <<.output>> {.tabset .unnumbered}",
"",
"##### Batch {.unnumbered}",
"```{r umap-<<feature>>-<<scale>>-<<.method>>-<<.output>>-batch}",
"knitr::include_graphics('<<batch_path>>')",
"```",
"",
"##### Labels {.unnumbered}",
"```{r umap-<<feature>>-<<scale>>-<<.method>>-<<.output>>-labels}",
"knitr::include_graphics('<<labels_path>>')",
"```",
""
)
knitr::knit_expand(text = src, delim = c("<<", ">>"))
})
full_src <- c(full_src, src_list)
}
}
out <- knitr::knit_child(text = unlist(full_src), options = list(cache = FALSE))
Full
Scaled
MNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/mnn_full_labels.png')

Scanorama - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_embed_labels.png')

Scanorama - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_full_labels.png')

Seurat v3 - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/seurat_full_labels.png')

Harmony - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/harmony_embed_labels.png')

BBKNN - Graph
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/bbknn_knn_labels.png')

ComBat - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/combat_full_labels.png')

FastMNN - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_embed_labels.png')

FastMNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_full_labels.png')

Unscaled
MNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/mnn_full_labels.png')

Scanorama - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_embed_labels.png')

Scanorama - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_full_labels.png')

Seurat v3 - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/seurat_full_labels.png')

Harmony - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/harmony_embed_labels.png')

BBKNN - Graph
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/bbknn_knn_labels.png')

scVI - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scvi_embed_labels.png')

ComBat - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/combat_full_labels.png')

LIGER - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/liger_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/liger_embed_labels.png')

scANVI - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanvi_embed_labels.png')

FastMNN - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_embed_labels.png')

FastMNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_full_labels.png')

Unintegrated - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/unintegrated_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/unintegrated_full_labels.png')

HVG
Scaled
MNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/mnn_full_labels.png')

Scanorama - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_embed_labels.png')

Scanorama - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_full_labels.png')

Seurat v3 - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/seurat_full_labels.png')

Harmony - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/harmony_embed_labels.png')

BBKNN - Graph
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/bbknn_knn_labels.png')

ComBat - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/combat_full_labels.png')

FastMNN - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_embed_labels.png')

FastMNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_full_labels.png')

Unscaled
MNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/mnn_full_labels.png')

Scanorama - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_embed_labels.png')

Scanorama - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_full_labels.png')

Seurat v3 - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/seurat_full_labels.png')

Harmony - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/harmony_embed_labels.png')

BBKNN - Graph
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/bbknn_knn_labels.png')

scVI - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scvi_embed_labels.png')

ComBat - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/combat_full_labels.png')

LIGER - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/liger_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/liger_embed_labels.png')

scANVI - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanvi_embed_labels.png')

FastMNN - Embedding
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_embed_labels.png')

FastMNN - Features
Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_full_labels.png')
